pub const LOG2_LOOKUP: [u64; 2048] = [
    0, 22528, 20480, 19281, 18432, 17772, 17233, 16778, 16384, 16035, 15724, 15443, 15185, 14949,
    14730, 14526, 14336, 14156, 13987, 13828, 13676, 13532, 13395, 13263, 13137, 13017, 12901,
    12789, 12682, 12578, 12478, 12381, 12288, 12197, 12108, 12023, 11939, 11859, 11780, 11703,
    11628, 11555, 11484, 11415, 11347, 11280, 11215, 11152, 11089, 11029, 10969, 10910, 10853,
    10797, 10741, 10687, 10634, 10582, 10530, 10480, 10430, 10381, 10333, 10286, 10240, 10194,
    10149, 10104, 10060, 10017, 9975, 9933, 9891, 9851, 9811, 9771, 9732, 9693, 9655, 9617, 9580,
    9543, 9507, 9471, 9436, 9401, 9367, 9332, 9299, 9265, 9232, 9200, 9167, 9135, 9104, 9072, 9041,
    9011, 8981, 8951, 8921, 8891, 8862, 8834, 8805, 8777, 8749, 8721, 8693, 8666, 8639, 8613, 8586,
    8560, 8534, 8508, 8482, 8457, 8432, 8407, 8382, 8358, 8333, 8309, 8285, 8262, 8238, 8215, 8192,
    8169, 8146, 8123, 8101, 8078, 8056, 8034, 8012, 7991, 7969, 7948, 7927, 7906, 7885, 7864, 7843,
    7823, 7803, 7783, 7763, 7743, 7723, 7703, 7684, 7664, 7645, 7626, 7607, 7588, 7569, 7551, 7532,
    7514, 7495, 7477, 7459, 7441, 7423, 7406, 7388, 7370, 7353, 7336, 7319, 7301, 7284, 7267, 7251,
    7234, 7217, 7201, 7184, 7168, 7152, 7135, 7119, 7103, 7087, 7071, 7056, 7040, 7024, 7009, 6993,
    6978, 6963, 6948, 6933, 6918, 6903, 6888, 6873, 6858, 6843, 6829, 6814, 6800, 6786, 6771, 6757,
    6743, 6729, 6715, 6701, 6687, 6673, 6659, 6645, 6632, 6618, 6605, 6591, 6578, 6565, 6551, 6538,
    6525, 6512, 6499, 6486, 6473, 6460, 6447, 6434, 6422, 6409, 6396, 6384, 6371, 6359, 6347, 6334,
    6322, 6310, 6297, 6285, 6273, 6261, 6249, 6237, 6225, 6214, 6202, 6190, 6178, 6167, 6155, 6144,
    6132, 6121, 6109, 6098, 6086, 6075, 6064, 6053, 6041, 6030, 6019, 6008, 5997, 5986, 5975, 5964,
    5954, 5943, 5932, 5921, 5911, 5900, 5889, 5879, 5868, 5858, 5847, 5837, 5826, 5816, 5806, 5795,
    5785, 5775, 5765, 5755, 5745, 5735, 5725, 5715, 5705, 5695, 5685, 5675, 5665, 5655, 5645, 5636,
    5626, 5616, 5607, 5597, 5588, 5578, 5568, 5559, 5550, 5540, 5531, 5521, 5512, 5503, 5493, 5484,
    5475, 5466, 5457, 5447, 5438, 5429, 5420, 5411, 5402, 5393, 5384, 5375, 5367, 5358, 5349, 5340,
    5331, 5322, 5314, 5305, 5296, 5288, 5279, 5271, 5262, 5253, 5245, 5236, 5228, 5219, 5211, 5203,
    5194, 5186, 5178, 5169, 5161, 5153, 5144, 5136, 5128, 5120, 5112, 5104, 5095, 5087, 5079, 5071,
    5063, 5055, 5047, 5039, 5031, 5023, 5016, 5008, 5000, 4992, 4984, 4976, 4969, 4961, 4953, 4945,
    4938, 4930, 4923, 4915, 4907, 4900, 4892, 4885, 4877, 4870, 4862, 4855, 4847, 4840, 4832, 4825,
    4818, 4810, 4803, 4795, 4788, 4781, 4774, 4766, 4759, 4752, 4745, 4738, 4730, 4723, 4716, 4709,
    4702, 4695, 4688, 4681, 4674, 4667, 4660, 4653, 4646, 4639, 4632, 4625, 4618, 4611, 4604, 4597,
    4591, 4584, 4577, 4570, 4563, 4557, 4550, 4543, 4537, 4530, 4523, 4517, 4510, 4503, 4497, 4490,
    4483, 4477, 4470, 4464, 4457, 4451, 4444, 4438, 4431, 4425, 4418, 4412, 4406, 4399, 4393, 4386,
    4380, 4374, 4367, 4361, 4355, 4348, 4342, 4336, 4330, 4323, 4317, 4311, 4305, 4299, 4292, 4286,
    4280, 4274, 4268, 4262, 4256, 4249, 4243, 4237, 4231, 4225, 4219, 4213, 4207, 4201, 4195, 4189,
    4183, 4177, 4171, 4166, 4160, 4154, 4148, 4142, 4136, 4130, 4124, 4119, 4113, 4107, 4101, 4096,
    4090, 4084, 4078, 4073, 4067, 4061, 4055, 4050, 4044, 4038, 4033, 4027, 4021, 4016, 4010, 4005,
    3999, 3993, 3988, 3982, 3977, 3971, 3966, 3960, 3955, 3949, 3944, 3938, 3933, 3927, 3922, 3916,
    3911, 3906, 3900, 3895, 3889, 3884, 3879, 3873, 3868, 3863, 3857, 3852, 3847, 3841, 3836, 3831,
    3825, 3820, 3815, 3810, 3804, 3799, 3794, 3789, 3784, 3778, 3773, 3768, 3763, 3758, 3753, 3747,
    3742, 3737, 3732, 3727, 3722, 3717, 3712, 3707, 3702, 3697, 3692, 3687, 3682, 3677, 3672, 3667,
    3662, 3657, 3652, 3647, 3642, 3637, 3632, 3627, 3622, 3617, 3612, 3607, 3602, 3597, 3593, 3588,
    3583, 3578, 3573, 3568, 3564, 3559, 3554, 3549, 3544, 3540, 3535, 3530, 3525, 3520, 3516, 3511,
    3506, 3502, 3497, 3492, 3487, 3483, 3478, 3473, 3469, 3464, 3459, 3455, 3450, 3445, 3441, 3436,
    3432, 3427, 3422, 3418, 3413, 3409, 3404, 3399, 3395, 3390, 3386, 3381, 3377, 3372, 3368, 3363,
    3359, 3354, 3350, 3345, 3341, 3336, 3332, 3327, 3323, 3319, 3314, 3310, 3305, 3301, 3296, 3292,
    3288, 3283, 3279, 3274, 3270, 3266, 3261, 3257, 3253, 3248, 3244, 3240, 3235, 3231, 3227, 3223,
    3218, 3214, 3210, 3205, 3201, 3197, 3193, 3188, 3184, 3180, 3176, 3171, 3167, 3163, 3159, 3155,
    3150, 3146, 3142, 3138, 3134, 3130, 3125, 3121, 3117, 3113, 3109, 3105, 3101, 3096, 3092, 3088,
    3084, 3080, 3076, 3072, 3068, 3064, 3060, 3056, 3051, 3047, 3043, 3039, 3035, 3031, 3027, 3023,
    3019, 3015, 3011, 3007, 3003, 2999, 2995, 2991, 2987, 2983, 2979, 2975, 2972, 2968, 2964, 2960,
    2956, 2952, 2948, 2944, 2940, 2936, 2932, 2928, 2925, 2921, 2917, 2913, 2909, 2905, 2901, 2897,
    2894, 2890, 2886, 2882, 2878, 2875, 2871, 2867, 2863, 2859, 2855, 2852, 2848, 2844, 2840, 2837,
    2833, 2829, 2825, 2822, 2818, 2814, 2810, 2807, 2803, 2799, 2795, 2792, 2788, 2784, 2781, 2777,
    2773, 2770, 2766, 2762, 2758, 2755, 2751, 2747, 2744, 2740, 2737, 2733, 2729, 2726, 2722, 2718,
    2715, 2711, 2708, 2704, 2700, 2697, 2693, 2690, 2686, 2682, 2679, 2675, 2672, 2668, 2665, 2661,
    2657, 2654, 2650, 2647, 2643, 2640, 2636, 2633, 2629, 2626, 2622, 2619, 2615, 2612, 2608, 2605,
    2601, 2598, 2594, 2591, 2587, 2584, 2580, 2577, 2574, 2570, 2567, 2563, 2560, 2556, 2553, 2549,
    2546, 2543, 2539, 2536, 2532, 2529, 2526, 2522, 2519, 2515, 2512, 2509, 2505, 2502, 2499, 2495,
    2492, 2489, 2485, 2482, 2479, 2475, 2472, 2469, 2465, 2462, 2459, 2455, 2452, 2449, 2445, 2442,
    2439, 2435, 2432, 2429, 2426, 2422, 2419, 2416, 2413, 2409, 2406, 2403, 2399, 2396, 2393, 2390,
    2387, 2383, 2380, 2377, 2374, 2370, 2367, 2364, 2361, 2358, 2354, 2351, 2348, 2345, 2342, 2338,
    2335, 2332, 2329, 2326, 2322, 2319, 2316, 2313, 2310, 2307, 2304, 2300, 2297, 2294, 2291, 2288,
    2285, 2282, 2278, 2275, 2272, 2269, 2266, 2263, 2260, 2257, 2254, 2251, 2247, 2244, 2241, 2238,
    2235, 2232, 2229, 2226, 2223, 2220, 2217, 2214, 2211, 2208, 2205, 2201, 2198, 2195, 2192, 2189,
    2186, 2183, 2180, 2177, 2174, 2171, 2168, 2165, 2162, 2159, 2156, 2153, 2150, 2147, 2144, 2141,
    2138, 2135, 2132, 2129, 2126, 2123, 2121, 2118, 2115, 2112, 2109, 2106, 2103, 2100, 2097, 2094,
    2091, 2088, 2085, 2082, 2079, 2076, 2074, 2071, 2068, 2065, 2062, 2059, 2056, 2053, 2050, 2048,
    2045, 2042, 2039, 2036, 2033, 2030, 2027, 2025, 2022, 2019, 2016, 2013, 2010, 2007, 2005, 2002,
    1999, 1996, 1993, 1990, 1988, 1985, 1982, 1979, 1976, 1973, 1971, 1968, 1965, 1962, 1959, 1957,
    1954, 1951, 1948, 1945, 1943, 1940, 1937, 1934, 1932, 1929, 1926, 1923, 1920, 1918, 1915, 1912,
    1909, 1907, 1904, 1901, 1898, 1896, 1893, 1890, 1887, 1885, 1882, 1879, 1877, 1874, 1871, 1868,
    1866, 1863, 1860, 1858, 1855, 1852, 1849, 1847, 1844, 1841, 1839, 1836, 1833, 1831, 1828, 1825,
    1823, 1820, 1817, 1815, 1812, 1809, 1807, 1804, 1801, 1799, 1796, 1793, 1791, 1788, 1785, 1783,
    1780, 1777, 1775, 1772, 1770, 1767, 1764, 1762, 1759, 1756, 1754, 1751, 1749, 1746, 1743, 1741,
    1738, 1736, 1733, 1730, 1728, 1725, 1723, 1720, 1718, 1715, 1712, 1710, 1707, 1705, 1702, 1699,
    1697, 1694, 1692, 1689, 1687, 1684, 1682, 1679, 1677, 1674, 1671, 1669, 1666, 1664, 1661, 1659,
    1656, 1654, 1651, 1649, 1646, 1644, 1641, 1639, 1636, 1634, 1631, 1629, 1626, 1624, 1621, 1619,
    1616, 1614, 1611, 1609, 1606, 1604, 1601, 1599, 1596, 1594, 1591, 1589, 1586, 1584, 1581, 1579,
    1576, 1574, 1572, 1569, 1567, 1564, 1562, 1559, 1557, 1554, 1552, 1549, 1547, 1545, 1542, 1540,
    1537, 1535, 1532, 1530, 1528, 1525, 1523, 1520, 1518, 1516, 1513, 1511, 1508, 1506, 1504, 1501,
    1499, 1496, 1494, 1492, 1489, 1487, 1484, 1482, 1480, 1477, 1475, 1472, 1470, 1468, 1465, 1463,
    1461, 1458, 1456, 1454, 1451, 1449, 1446, 1444, 1442, 1439, 1437, 1435, 1432, 1430, 1428, 1425,
    1423, 1421, 1418, 1416, 1414, 1411, 1409, 1407, 1404, 1402, 1400, 1397, 1395, 1393, 1391, 1388,
    1386, 1384, 1381, 1379, 1377, 1374, 1372, 1370, 1367, 1365, 1363, 1361, 1358, 1356, 1354, 1351,
    1349, 1347, 1345, 1342, 1340, 1338, 1336, 1333, 1331, 1329, 1327, 1324, 1322, 1320, 1317, 1315,
    1313, 1311, 1308, 1306, 1304, 1302, 1300, 1297, 1295, 1293, 1291, 1288, 1286, 1284, 1282, 1279,
    1277, 1275, 1273, 1271, 1268, 1266, 1264, 1262, 1259, 1257, 1255, 1253, 1251, 1248, 1246, 1244,
    1242, 1240, 1237, 1235, 1233, 1231, 1229, 1226, 1224, 1222, 1220, 1218, 1216, 1213, 1211, 1209,
    1207, 1205, 1203, 1200, 1198, 1196, 1194, 1192, 1190, 1187, 1185, 1183, 1181, 1179, 1177, 1175,
    1172, 1170, 1168, 1166, 1164, 1162, 1160, 1157, 1155, 1153, 1151, 1149, 1147, 1145, 1142, 1140,
    1138, 1136, 1134, 1132, 1130, 1128, 1126, 1123, 1121, 1119, 1117, 1115, 1113, 1111, 1109, 1107,
    1104, 1102, 1100, 1098, 1096, 1094, 1092, 1090, 1088, 1086, 1084, 1082, 1079, 1077, 1075, 1073,
    1071, 1069, 1067, 1065, 1063, 1061, 1059, 1057, 1055, 1053, 1050, 1048, 1046, 1044, 1042, 1040,
    1038, 1036, 1034, 1032, 1030, 1028, 1026, 1024, 1022, 1020, 1018, 1016, 1014, 1012, 1010, 1008,
    1006, 1003, 1001, 999, 997, 995, 993, 991, 989, 987, 985, 983, 981, 979, 977, 975, 973, 971,
    969, 967, 965, 963, 961, 959, 957, 955, 953, 951, 949, 947, 945, 943, 941, 939, 937, 935, 933,
    931, 929, 927, 925, 924, 922, 920, 918, 916, 914, 912, 910, 908, 906, 904, 902, 900, 898, 896,
    894, 892, 890, 888, 886, 884, 882, 880, 878, 877, 875, 873, 871, 869, 867, 865, 863, 861, 859,
    857, 855, 853, 851, 849, 848, 846, 844, 842, 840, 838, 836, 834, 832, 830, 828, 827, 825, 823,
    821, 819, 817, 815, 813, 811, 809, 807, 806, 804, 802, 800, 798, 796, 794, 792, 790, 789, 787,
    785, 783, 781, 779, 777, 775, 774, 772, 770, 768, 766, 764, 762, 760, 759, 757, 755, 753, 751,
    749, 747, 746, 744, 742, 740, 738, 736, 734, 733, 731, 729, 727, 725, 723, 722, 720, 718, 716,
    714, 712, 710, 709, 707, 705, 703, 701, 699, 698, 696, 694, 692, 690, 689, 687, 685, 683, 681,
    679, 678, 676, 674, 672, 670, 669, 667, 665, 663, 661, 660, 658, 656, 654, 652, 651, 649, 647,
    645, 643, 642, 640, 638, 636, 634, 633, 631, 629, 627, 625, 624, 622, 620, 618, 617, 615, 613,
    611, 609, 608, 606, 604, 602, 601, 599, 597, 595, 594, 592, 590, 588, 586, 585, 583, 581, 579,
    578, 576, 574, 572, 571, 569, 567, 565, 564, 562, 560, 558, 557, 555, 553, 551, 550, 548, 546,
    545, 543, 541, 539, 538, 536, 534, 532, 531, 529, 527, 526, 524, 522, 520, 519, 517, 515, 513,
    512, 510, 508, 507, 505, 503, 501, 500, 498, 496, 495, 493, 491, 490, 488, 486, 484, 483, 481,
    479, 478, 476, 474, 473, 471, 469, 467, 466, 464, 462, 461, 459, 457, 456, 454, 452, 451, 449,
    447, 446, 444, 442, 441, 439, 437, 436, 434, 432, 431, 429, 427, 426, 424, 422, 421, 419, 417,
    416, 414, 412, 411, 409, 407, 406, 404, 402, 401, 399, 397, 396, 394, 392, 391, 389, 387, 386,
    384, 383, 381, 379, 378, 376, 374, 373, 371, 369, 368, 366, 365, 363, 361, 360, 358, 356, 355,
    353, 351, 350, 348, 347, 345, 343, 342, 340, 339, 337, 335, 334, 332, 330, 329, 327, 326, 324,
    322, 321, 319, 318, 316, 314, 313, 311, 310, 308, 306, 305, 303, 302, 300, 298, 297, 295, 294,
    292, 290, 289, 287, 286, 284, 282, 281, 279, 278, 276, 274, 273, 271, 270, 268, 267, 265, 263,
    262, 260, 259, 257, 256, 254, 252, 251, 249, 248, 246, 245, 243, 241, 240, 238, 237, 235, 234,
    232, 230, 229, 227, 226, 224, 223, 221, 220, 218, 216, 215, 213, 212, 210, 209, 207, 206, 204,
    203, 201, 199, 198, 196, 195, 193, 192, 190, 189, 187, 186, 184, 183, 181, 179, 178, 176, 175,
    173, 172, 170, 169, 167, 166, 164, 163, 161, 160, 158, 157, 155, 153, 152, 150, 149, 147, 146,
    144, 143, 141, 140, 138, 137, 135, 134, 132, 131, 129, 128, 126, 125, 123, 122, 120, 119, 117,
    116, 114, 113, 111, 110, 108, 107, 105, 104, 102, 101, 99, 98, 96, 95, 93, 92, 90, 89, 87, 86,
    84, 83, 81, 80, 78, 77, 75, 74, 73, 71, 70, 68, 67, 65, 64, 62, 61, 59, 58, 56, 55, 53, 52, 50,
    49, 47, 46, 45, 43, 42, 40, 39, 37, 36, 34, 33, 31, 30, 28, 27, 26, 24, 23, 21, 20, 18, 17, 15,
    14, 13, 11, 10, 8, 7, 5, 4, 2, 1,
];
